package myzzyl.service;

import myzzyl.domain.dto.NursingLevelDto;
import myzzyl.domain.pojo.NursingLevel;
import com.baomidou.mybatisplus.extension.service.IService;
import myzzyl.domain.vo.NursingLevelVo;
import myzzyl.response.PageResponse;

import java.util.List;

/**
* @author 33249
* @description 针对表【nursing_level(护理等级表)】的数据库操作Service
* @createDate 2025-08-10 10:20:36
*/
public interface NursingLevelService extends IService<NursingLevel> {

    /**
     * 分页获取所有护理等级
     * @param name 等级名称
     * @param status 等级状态
     * @param pageNum 页码
     * @param pageSize 每页大小
     * @return 返回值
     */
    PageResponse<NursingLevelVo> getAll(String name, Integer status, Integer pageNum, Integer pageSize);


    /**
     * 获取护理等级详情
     * @param id 护理等级id
     * @return 返回值
     */
    NursingLevelVo getInfo(Integer id);

    /**
     * 新增护理等级
     * @param NursingLevelDto 护理等级表单请求包装类
     * @return 返回值
     */
    boolean add(NursingLevelDto NursingLevelDto);

    /**
     * 编辑护理等级
     * @param NursingLevelDto 护理等级表单请求包装类
     * @return 返回值
     */
    boolean edit(NursingLevelDto NursingLevelDto);

    /**
     * 删除护理等级
     * @param id 护理等级id
     * @return 返回值
     */
    boolean deleteNursingLevelById(Integer id);

    /**
     * 启用或禁用护理等级
     * @param id 护理等级id
     * @param status 需要更新的护理等级状态
     * @return 返回值
     */
    boolean enableOrDisableNursingLevel(Integer id, Integer status);

    /**
     * 获取所有护理等级
     * @return 返回值
     */
    List<NursingLevelVo> listAll();



}
